<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>QCNSim: Topology Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">QCNSim
   </div>
   <div id="projectbrief">Simulator for Quake-Catcher Network</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="class_topology-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Topology Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="class_topology.html" title="Topology class. ">Topology</a> class.  
 <a href="class_topology.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_topology_8h_source.html">Topology.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a121bcc45af3856f04b02fe4688e73425"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="class_link.html">Link</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_topology.html#a121bcc45af3856f04b02fe4688e73425">findLinkByNodeB</a> (std::shared_ptr&lt; <a class="el" href="class_node.html">Node</a> &gt; nodeA, std::shared_ptr&lt; <a class="el" href="class_node.html">Node</a> &gt; nodeB)</td></tr>
<tr class="separator:a121bcc45af3856f04b02fe4688e73425"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a897405b62725c61fea51b3a86f9ffa5b"><td class="memItemLeft" align="right" valign="top">std::map&lt; unsigned int, <br class="typebreak"/>
std::shared_ptr<br class="typebreak"/>
&lt; <a class="el" href="class_qcn_sensor_traffic_generator.html">QcnSensorTrafficGenerator</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_topology.html#a897405b62725c61fea51b3a86f9ffa5b">qcnSensorTrafficGeneratorMap</a></td></tr>
<tr class="memdesc:a897405b62725c61fea51b3a86f9ffa5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map to hold all qcnSensorTrafficGenerators.  <a href="#a897405b62725c61fea51b3a86f9ffa5b">More...</a><br/></td></tr>
<tr class="separator:a897405b62725c61fea51b3a86f9ffa5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa31dfeda86412a02c74a427de3af3ff3"><td class="memItemLeft" align="right" valign="top">std::map&lt; unsigned int, <br class="typebreak"/>
std::shared_ptr&lt; <a class="el" href="class_node.html">Node</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_topology.html#aa31dfeda86412a02c74a427de3af3ff3">nodeMap</a></td></tr>
<tr class="memdesc:aa31dfeda86412a02c74a427de3af3ff3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds all nodes in the network.  <a href="#aa31dfeda86412a02c74a427de3af3ff3">More...</a><br/></td></tr>
<tr class="separator:aa31dfeda86412a02c74a427de3af3ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ff18941b190a7fd83af95b8b269a81e"><td class="memItemLeft" align="right" valign="top">std::map&lt; unsigned int, <br class="typebreak"/>
std::shared_ptr&lt; <a class="el" href="class_link.html">Link</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_topology.html#a4ff18941b190a7fd83af95b8b269a81e">linkMap</a></td></tr>
<tr class="memdesc:a4ff18941b190a7fd83af95b8b269a81e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map to concentrate all network links.  <a href="#a4ff18941b190a7fd83af95b8b269a81e">More...</a><br/></td></tr>
<tr class="separator:a4ff18941b190a7fd83af95b8b269a81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c696ecd54ed80cc68e5137e1640dec0"><td class="memItemLeft" align="right" valign="top">std::map&lt; unsigned int, <br class="typebreak"/>
std::vector&lt; std::shared_ptr<br class="typebreak"/>
&lt; <a class="el" href="class_entity.html">Entity</a> &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_topology.html#a8c696ecd54ed80cc68e5137e1640dec0">explicitRouteMap</a></td></tr>
<tr class="memdesc:a8c696ecd54ed80cc68e5137e1640dec0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map to concentrate all explicit route objects.  <a href="#a8c696ecd54ed80cc68e5137e1640dec0">More...</a><br/></td></tr>
<tr class="separator:a8c696ecd54ed80cc68e5137e1640dec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="class_topology.html" title="Topology class. ">Topology</a> class. </p>
<dl class="section author"><dt>Author</dt><dd>Marcos Portnoi </dd></dl>
<dl class="section date"><dt>Date</dt><dd>January 2014</dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>Copyright (C) 2013 University of Delaware. </dd>
<dd>
QCNSim uses elements of TARVOS simulator, Copyright (C) 2005, 2006, 2007 Marcos Portnoi. </dd></dl>
<dl class="section user"><dt></dt><dd>This file is part of QCNSim. QCNSim is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.<br/>
 QCNSim is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.<br/>
 You should have received a copy of the GNU Lesser General Public License along with QCNSim. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>. </dd></dl>
<dl class="section user"><dt>Description</dt><dd>This <a class="el" href="class_topology.html" title="Topology class. ">Topology</a> class implements data structures and functions to facilitate management of the network topology part of a QCN simulation.</dd></dl>
<p>In particular, this class can concentrate vectors of Nodes, Links, traffic generators, etc. A few utility functions might include finding a link given nodeA and nodeB and getters and setters.</p>
<p>This is a template for future implementations. Use with wisdom. :) </p>

<p>Definition at line <a class="el" href="_topology_8h_source.html#l00043">43</a> of file <a class="el" href="_topology_8h_source.html">Topology.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a121bcc45af3856f04b02fe4688e73425"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="class_link.html">Link</a>&gt; Topology::findLinkByNodeB </td>
          <td>(</td>
          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="class_node.html">Node</a> &gt;&#160;</td>
          <td class="paramname"><em>nodeA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="class_node.html">Node</a> &gt;&#160;</td>
          <td class="paramname"><em>nodeB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a8c696ecd54ed80cc68e5137e1640dec0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;unsigned int, std::vector&lt;std::shared_ptr&lt;<a class="el" href="class_entity.html">Entity</a>&gt; &gt; &gt; Topology::explicitRouteMap</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map to concentrate all explicit route objects. </p>

<p>Definition at line <a class="el" href="_topology_8h_source.html#l00048">48</a> of file <a class="el" href="_topology_8h_source.html">Topology.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4ff18941b190a7fd83af95b8b269a81e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;unsigned int, std::shared_ptr&lt;<a class="el" href="class_link.html">Link</a>&gt; &gt; Topology::linkMap</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map to concentrate all network links. </p>

<p>Definition at line <a class="el" href="_topology_8h_source.html#l00047">47</a> of file <a class="el" href="_topology_8h_source.html">Topology.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa31dfeda86412a02c74a427de3af3ff3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;unsigned int, std::shared_ptr&lt;<a class="el" href="class_node.html">Node</a>&gt; &gt; Topology::nodeMap</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Holds all nodes in the network. </p>

<p>Definition at line <a class="el" href="_topology_8h_source.html#l00046">46</a> of file <a class="el" href="_topology_8h_source.html">Topology.h</a>.</p>

</div>
</div>
<a class="anchor" id="a897405b62725c61fea51b3a86f9ffa5b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;unsigned int, std::shared_ptr&lt;<a class="el" href="class_qcn_sensor_traffic_generator.html">QcnSensorTrafficGenerator</a>&gt; &gt; Topology::qcnSensorTrafficGeneratorMap</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map to hold all qcnSensorTrafficGenerators. </p>

<p>Definition at line <a class="el" href="_topology_8h_source.html#l00045">45</a> of file <a class="el" href="_topology_8h_source.html">Topology.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>QcnSim/<a class="el" href="_topology_8h_source.html">Topology.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 15 2014 10:33:17 for QCNSim by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
